# ATM（CDM）存取系统


# 个人账户的初始值：
account1={'name':'zhangsan','accountno':'6xxxx0123','password':123456,'balance':1000}


#定义一个显示个人账户信息的函数
def showinfo(account1):
    print("{0:<6}{1:<15}{2:<0}{3:<7}{4:<15}{5:<0}{6:<6}{7:<15}".format('户主姓名：',account1['name'],'\n','账号   ：',account1['accountno'],'\n','账号余额：',account1['balance']),'\n')
    #print("{0:<5}{1:<5}{2:<2}{3:<5}{4:<15}{5:<2}{6:<5}{7:<8}".format('户主姓名',account1['name'],'\n','账号',account1['accountno'],'\n','账号余额：',account1['balance']),'\n')


#把登录和执行操作定义为一个函数，方便递归循环调用
def loginpage():
    
    print(6*'=','欢迎使用XX银行CDM自助存取款系统',6*'=')    
    input('====== 请按ENTER键进入下一步 ==============')
    
    while True:
        key1=input('请输入你的账号，并按ENTER键确认:')
        key2=input('请输入你的密码，并按ENTER键确认:')
        if ( key1==account1['name'] or key1==account1['accountno'] ) and key2=='123456':
            #showinfo(account1)
            while True:
                print('1:查询余额；2：取款；3：存款；4：退出账户')#format格式化输出前面定义显示信息的函数已用过，这里简单化编程
                
                key4=input('请按对应的数码选择您要执行的操作,并按ENTER确认：')
                
                if key4=='1':
                    showinfo(account1)
                    input('按ENTER键返回主菜单')
                    print()
                elif key4=='2':
                    while True:
                        
                        key5=input('请输入取款额（最小取款面额为50元）：')
                        if int(key5)>account1['balance']:
                            input('余额不足,\n请按ENTER键返回重新输入')
                        else:
                            account1['balance']-=int(key5)
                            print('正在为你准备钞票……')
                            print('请取走你的钞票')
                            key6=input('返回上级菜单请按0，再取一笔请按1，输入完成按ENTER确认')
                            if key6=='0':
                                break
                            elif key6=='1':
                                print('再取一笔')
                            else:
                                print('输入值无效，系统将默认为您转到主菜单')
                                input('按ENTER键确认返回上级菜单')
                                print()
                                break
                elif key4=='3':
                    print('请放入钞票')
                    input('按ENTER键确认')
                    key7=input('请输入你的存款额，并按ENTER键确认：')
                    print('正在为你清点钞票……')
                    print('……10s后')
                    account1['balance']+=int(key7)
                    print('存款完成！')
                    input('请按ENTER键返回上级菜单')
                    print()
                elif key4=='4':
                    input('请再次按ENTER键退出个人账户')
                    print()
                    break
                else:
                    print('输入值无效')
                    input('按任意键返回重新输入')
                    print()
          
            
        else:
            print('密码错误，或 用户名与密码不匹配！')
            key3=input('按"1"重新输入，或按"0"取消操作：')
            if key3=='1':            
                input('按ENTER键确认重新输入')
                print()
            elif key3=='0':
                break
            else:
                input('输入值无效，系统将默认为您返回登录界面，按ENTER键确认')
                print()
                
    loginpage() #递归调用该登录界面


#CDM机器开机即执行登录界面
loginpage()        

